let ajax = {

    /**
     * get
     * @param url 请求地址
     * @param fn 回调函数
     */
    get: function (url, fn) {

        // XMLHttpRequest对象用于在后台与服务器交换数据
        let xhr = new XMLHttpRequest();

        xhr.open('GET', url, true);

        xhr.onreadystatechange = function () {
            // readyState == 4说明请求已完成
            if (xhr.readyState === 4 && xhr.status === 200 || xhr.status === 304) {
                // 从服务器获得数据
                fn.call(this, xhr.responseText);
            }
        };

        xhr.send();
    },

    /**
     * post
     * @param url 请求地址
     * @param data 请求参数 对象形式
     * @param fn 回调函数
     */
    post: function (url, data, fn) {

        //对象转请求键值对
        $postData = "";
        for (let [k, v] of Object.entries(data)) {
            $postData += k + "=" + v + "&";
        }
        $postData = $postData.substr(0, $postData.length - 1);

        let xhr = new XMLHttpRequest();

        xhr.open("POST", url, true);

        // 添加http头，发送信息至服务器时内容编码类型
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

        xhr.onreadystatechange = function () {
            if (xhr.readyState === 4 && (xhr.status === 200 || xhr.status === 304)) {
                fn.call(this, xhr.responseText);
            }
        };

        xhr.send($postData);
    }
};